using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
using Sedna.Core.Persistence;

namespace Sedna.Core.Controller
{
    # region Delegates

    public delegate void ControlHandler(Control control);

    # endregion
    
    public interface IController : ICloneable
    {                
        String DataProviderPath { get; }

        IDictionary ControllerContext { get; }

        IDataProvider CurrentDataProvider { get; }

        void LoadOrRefresh();
        
        void LoadNewData(IDataProvider dataProvider);

        void LoadNewData();

        void Refresh();

        event ControlHandler OnControlChanged;
    }
}
